Skip to content

Conversation

@Ukj0ng
Copy link
Contributor

@Ukj0ng Ukj0ng commented Jan 24, 2026

🧷 문제 링크

https://www.acmicpc.net/problem/11062

🧭 풀이 시간

60분

👀 체감 난이도

✏️ 문제 설명

카드를 일렬로 나열하고, 근우와 명우가 왼쪽 오른쪽 하나씩 선택한다. 근우가 먹을 수 있는 최대 점수를 선택하라.

🔍 풀이 방법

dp[i][j]: i번째 인덱스에서 j번째 인덱스 사이에서 근우가 가질 수 있는 최댓값

if (isGeunWoo) {
            int pickLeft = arr[left] + DP(left+1, right, false);
            int pickRight = arr[right] + DP(left, right-1, false);
            return dp[left][right] = Math.max(pickLeft, pickRight);
        } else {
            int pickLeft = DP(left+1, right, true);
            int pickRight = DP(left, right-1, true);
            return dp[left][right] = Math.min(pickLeft, pickRight);
        }

⏳ 회고

탑다운으로 재귀로 풀었는데, 처음에 바텀업으로 풀었다가 해결을 못했다. 바텀업으로 풀면 너무 생각할게 많았는데 탑다운은 너무 구체적인 생각을 안하고 해버리는 느낌이었다. 바텀업으로 다시 풀어봐야겠다.

@ShinHeeEul ShinHeeEul merged commit 1079c27 into main Jan 24, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants